iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0
自我挑戰組

多人連線遊戲背後的原理與實作系列 第 7

Day 07 - 製作連線遊戲時會遇到的問題(網路延遲與封包丟失篇)

  • 分享至 

  • xImage
  •  

在製作多人連線遊戲時,勢必會遇到連線同步的問題,而這個問題其中包括網路延遲以及封包丟失,如果電腦傳輸的訊息量過大,又或是網路速度或流量不佳時,就有可能會產生這兩種網路問題。

一. 網路延遲

電腦在傳遞封包時是需要時間的,而這個等待傳送封包到達的時間就是我們所說的網路延遲,而我們常在遊戲中聽到的Ping值就是一個封包成功送達目標電腦並回傳至本地電腦時所花的時間,通常會用毫秒來做計算,而Ping值通常在100毫秒以下是玩家比較能接受的數值範圍,若超出此數值大部分玩家可以明顯感受出延遲感。

二. 封包遺失

在前兩篇文章中有提到兩種協議對於封包遺失時的處理,TCP雖然可以有效復原封包,但這過程中,也降低了網路的吞吐量,而UDP無法復原遺失的封包,若今天有大量的封包遺失時,也會影響到遊戲遊玩的品質。

三. 優化

若要改善以上提到的兩種問題,有以下幾種方法可以去做優化。

  1. 優化封包資料: 減少不必要的資訊,降低封包大小。
  2. 減少封包傳輸量: 這點在後面會做更多的介紹,主要目的是減少不必要的封包
  3. 提升網路速度: 增加網路的吞吐量,就能讓封包傳輸的速度更快,就能減少封包遺失的狀況產生。

上一篇
Day 06 - 認識網路通訊協定(UDP)
下一篇
Day 08 - 製作連線遊戲時會遇到的問題(客戶端預測篇)
系列文
多人連線遊戲背後的原理與實作30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言